*/ public function register(): array { return [ T_CLASS, ]; } /** * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint * @param int $classPointer */ public function process(File $phpcsFile, $classPointer): void { $className = ClassHelper::getName($phpcsFile, $classPointer); $previousPointer = TokenHelper::findPreviousEffective($phpcsFile, $classPointer - 1); if ($phpcsFile->getTokens()[$previousPointer]['code'] !== T_ABSTRACT) { return; } $this->checkPrefix($phpcsFile, $classPointer, $className); $this->checkSuffix($phpcsFile, $classPointer, $className); } private function checkPrefix(File $phpcsFile, int $classPointer, string $className): void { $prefix = substr($className, 0, 8); if (strtolower($prefix) !== 'abstract') { return; } $phpcsFile->addError(sprintf('Superfluous prefix "%s".', $prefix), $classPointer, self::CODE_SUPERFLUOUS_PREFIX); } private function checkSuffix(File $phpcsFile, int $classPointer, string $className): void { $suffix = substr($className, -8); if (strtolower($suffix) !== 'abstract') { return; } $phpcsFile->addError(sprintf('Superfluous suffix "%s".', $suffix), $classPointer, self::CODE_SUPERFLUOUS_SUFFIX); } }